/**
 * UFCG - CEEI - DSC- SI1
 * Projeto da Disciplina Sistema de Informacao 1 - 2011.1
 * 
 * Professor: Hyggo Almeida
 * 
 * Alunos: Felipe de Sousa - felipeso@lcc.ufcg.edu.br
 * 		   Matheus Sampaio - matheusss@lcc.ufcg.edu.br
 *         Henrique Florencio - henriquecf@lcc.ufcg.edu.br
 *         Claudio Cardoso - claudiocaj@lcc.ufcg.edu.br
 * 		   Julio Henrrique - juliohr@lcc.ufcg.edu.br
 * 
 */

package model;

import java.io.Serializable;

import exception.ExceptionAtributoInvalido;

public class Escritorio implements SalaIF, Serializable {

	private static final long serialVersionUID = 6956026071789332167L;
	private String apelido;
	private int capacidade;
	private String finalidade;
	private String id;

	/**
	 * Construtor para um escritorio sem apelido
	 * 
	 * @param id
	 *            o id do escritorio
	 * @param capacidade
	 *            a capacidade do escritorio
	 * @param finalidade
	 *            a finalidade do escritorio
	 */
	public Escritorio(String id, int capacidade, String finalidade) {
		this(id, capacidade, finalidade, "");
	}

	/**
	 * Construtor para um escritorio com apelido
	 * 
	 * @param id
	 *            o id do escritorio
	 * @param capacidade
	 *            a capacidade do escritorio
	 * @param finalidade
	 *            a finalidade do escritorio
	 * @param apelido
	 *            o apilido do escritorio
	 */
	public Escritorio(String id, int capacidade, String finalidade,
			String apelido) {
		this.id = id;
		this.capacidade = capacidade;
		this.finalidade = finalidade;
		this.apelido = apelido;
	}

	@Override
	public String getApelido() {
		return apelido;
	}

	@Override
	public String getAtributos(String atributo)
			throws ExceptionAtributoInvalido {
		if (atributo.equals("id")) {
			return getId();
		} else if (atributo.equals("capacidade")) {
			return Integer.toString(getCapacidade());
		} else if (atributo.equals("finalidade")) {
			return getFinalidade();
		} else if (atributo.equals("apelido")) {
			return getApelido();
		} else {
			throw new ExceptionAtributoInvalido();
		}

	}

	@Override
	public int getCapacidade() {
		return this.capacidade;
	}

	@Override
	public String getFinalidade() {
		return this.finalidade;
	}

	@Override
	public String getId() {
		return this.id;
	}

	@Override
	public String getTipo() {
		return "nada";
	}

	@Override
	public void setApelido(String apelido) {
		this.apelido = apelido;
	}

	public void setFinalidade(String finalidade) {
		this.finalidade = finalidade;
	}

	public void setId(String id) {
		this.id = id;
	}

	@Override
	public void setCapacidade(int novaCapacidade) {
		this.capacidade = novaCapacidade;
	}

}
